/*
 * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
 *
 * https://www.mall4j.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */
package com.yami.shop.dao;


import cn.hutool.core.date.DateTime;
import com.yami.shop.bean.vo.statistics.HotStatisticsVO;
import com.yami.shop.bean.vo.statistics.PlatformStatisticsVO;
import com.yami.shop.bean.vo.statistics.TrendStatisticsVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author chiley
 */
public interface StatisticsMapper {

    /**
     * 获取平台主页基本信息
     *
     * @param lastStartTime 上月开始时间
     * @param startTime     本月开始时间
     * @return
     */
    List<PlatformStatisticsVO> getPlatformBaseInfo(@Param("lastStartTime") DateTime lastStartTime, @Param("startTime") Date startTime);

    /**
     * 获取平台主页今日待办、实时概况
     *
     * @param today     今日
     * @param yesterday 昨天
     * @param sevenDay  前七天
     * @param thirtyDay 前30天
     * @return
     */
    PlatformStatisticsVO getAuditAndPlatformStatistics(@Param("today") Date today, @Param("yesterday") Date yesterday, @Param("sevenDay") Date sevenDay, @Param("thirtyDay") Date thirtyDay);

    /**
     * 热卖店铺列表
     *
     * @param startTime 开始时间
     * @return
     */
//    List<HotStatisticsVO> getHotShopList(@Param("startTime") Date startTime);


    /**
     * 热卖店铺列表(指定一段时间内)
     *
     * @param startTime 起始时间
     * @param endTime   结束时间
     * @param lang      语言
     * @return
     */
    List<HotStatisticsVO> getHotShopListByDate(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("lang") Integer lang);


    /**
     * 热卖商品列表
     *
     * @param startTime 开始时间
     * @param lang      语言
     * @return
     */
//    List<HotStatisticsVO> getHotProdList(@Param("startTime") Date startTime, @Param("lang") Integer lang);

    /**
     * 热卖商品列表(指定一段时间内)
     *
     * @param startTime 起始时间
     * @param endTime   结束时间
     * @param lang      语言
     * @return
     */
    List<HotStatisticsVO> getHotProdListByDate(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("lang") Integer lang);

    /**
     * 获取流量走势
     *
     * @param startDate
     * @return
     */
//    List<TrendStatisticsVO> flowTrend(@Param("startTime") Date startTime);
    List<TrendStatisticsVO> flowTrend(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    /**
     * 获取交易走势
     *
     * @param startDate
     * @return
     */
//    List<TrendStatisticsVO> transactionTrend(@Param("startTime") DateTime startTime);
    List<TrendStatisticsVO> transactionTrend(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
}
